package yygh.user.api;


import yygh.hospital.model.user.UserInfo;
import yygh.hospital.vo.user.LoginVo;
import yygh.hospital.vo.user.UserAuthVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import yygh.common.result.Result;
import yygh.common.utils.AuthContextHolder;
import yygh.user.Service.UserInfoService;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

@RestController
@RequestMapping("/api/user")
public class UserInfoApiController {

    @Autowired
    UserInfoService userInfoService;

    /**
     * 用户登录相关接口
     * @param loginVo
     * @return
     */
        //用户登录接口1：实现手机号的登录
        @ApiOperation("实现手机号的登录")
        @PostMapping("login")
        public Result login(@RequestBody LoginVo loginVo){
            //登录成功后，以map形式返回，封装了一些登录的信息
            Map<String,Object> info=userInfoService.login(loginVo);

            return Result.ok(info);
        }


    /**
     *  用户信息认证相关接口
      */

    //用户信息接口1：实现用户信息认证（更新用户信息的证件、姓名等）
    @ApiOperation("实现用户信息认证")
    @PostMapping("auth/userAuth")
    public  Result userAuth(@RequestBody UserAuthVo userAuthVo, HttpServletRequest request){
        userInfoService.userAuth(AuthContextHolder.getUserId(request),userAuthVo);
           return  Result.ok();
    }

    // 用户信息接口2：根据用户id获取用户信息
    @ApiOperation("根据用户id获取用户信息")
    @GetMapping("auth/getUserInfo")
    public  Result getUserInfo(HttpServletRequest request){
        Long userId = AuthContextHolder.getUserId(request);
        UserInfo userInfo = userInfoService.getById(userId);
        return  Result.ok(userInfo);
    }

}
